package com.xmall.order.define.dto;

import com.xmall.define.dict.OrderStatusEnum;
import com.xmall.define.dict.PayPlatformEnum;
import com.xmall.define.dict.PayTypeEnum;
import com.xmall.order.entity.Order;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

@Getter
@Setter
public class OrderDtoWithCascade extends Order implements Serializable {

    /**
     * 订单状态（0待付款 1待发货 2待收货 3已完成 4已评价 5已取消）
     */
    private String orderStatusName;

    /**
     * 支付方式（0余额 1微信 2支付宝）
     */
    private String payTypeName;

    /**
     * 支付平台（0移动端H5 1移动端App 2电脑端 3小程序）
     */
    private String payPlatformName;

    /**
     * 订单子项列表
     */
    private List<OrderItemDto> orderItems = new ArrayList<>();

    /**
     * 订单退货单
     */
    private List<OrderRefundDto> orderRefunds = new ArrayList<>();

    /**
     * 收货地址
     */
    private OrderDeliveryDto delivery;

    /**
     * 物流信息
     */
    private OrderExpressDto express;

    public String getPayTypeName() {
        return PayTypeEnum.getNameByType(this.getPayType());
    }

    public String getOrderStatusName() {
        return OrderStatusEnum.getNameByStatus(this.getOrderStatus());
    }

    public String getPayPlatformName() {
        return PayPlatformEnum.getNameByType(this.getPayPlatform());
    }
}
